XS_OP_READ_ONLY = XS_TRANSACTION_END,
XS_INTRODUCE,
XS_RELEASE,
- XS_GETDOMAINPATH,
+ XS_GET_DOMAIN_PATH,
XS_WRITE,
XS_MKDIR,
XS_RM,
case XS_TRANSACTION_END: return "TRANSACTION_END";
case XS_INTRODUCE: return "INTRODUCE";
case XS_RELEASE: return "RELEASE";
- case XS_GETDOMAINPATH: return "GETDOMAINPATH";
+ case XS_GET_DOMAIN_PATH: return "GET_DOMAIN_PATH";
case XS_WRITE: return "WRITE";
case XS_MKDIR: return "MKDIR";
case XS_RM: return "RM";
do_release(conn, onearg(in));
break;
- case XS_GETDOMAINPATH:
+ case XS_GET_DOMAIN_PATH:
do_get_domain_path(conn, onearg(in));
break;
if (!domain)
send_error(conn, ENOENT);
else
- send_reply(conn, XS_GETDOMAINPATH, domain->path,
+ send_reply(conn, XS_GET_DOMAIN_PATH, domain->path,
strlen(domain->path) + 1);
}
return xs_bool(xs_single(h, XS_RELEASE, domid_str, NULL));
}
+char *xs_get_domain_path(struct xs_handle *h, domid_t domid)
+{
+ char domid_str[MAX_STRLEN(domid)];
+
+ sprintf(domid_str, "%u", domid);
+
+ return xs_single(h, XS_GET_DOMAIN_PATH, domid_str, NULL);
+}
+
bool xs_shutdown(struct xs_handle *h)
{
bool ret = xs_bool(xs_single(h, XS_SHUTDOWN, "", NULL));
*/
bool xs_release_domain(struct xs_handle *h, domid_t domid);
+/* Query the home path of a domain.
+ */
+char *xs_get_domain_path(struct xs_handle *h, domid_t domid);
+
/* Only useful for DEBUG versions */
char *xs_debug_command(struct xs_handle *h, const char *cmd,
void *data, unsigned int len);